Force feedback can simulate the sense of touch (referred to as a haptic effect) for a user of a control device, such as a joystick, by generating a force that may be responsive to the user's input or alternatively, produce a feedback force that simulates a condition in a virtual world environment. Typically, a force feedback device employs a servo motor that has a servo loop rate, which is at least an order of magnitude faster than the device's ability to mechanically transmit a force to the user. For example, the user of a force feedback device with a relatively stiff mechanism, e.g., having a maximum rate of 50 Hz, will require a servo loop rate of 500 Hz or better if the user is to perceive a realistic haptic effect.
Historically, a host computer has been employed to render the calculations for the servo loop so that a servo motor could transmit or apply a desired haptic effect to the user. In the prior art, as each effect is rendered, it is downloaded by the host computer to the force feedback device for transmission to the user. Even though many host computers are capable of rendering the calculations in real time, a concurrent application implemented by the host computer that is computationally intensive (employing extensive graphics and sound) can cause a latency in the calculation and subsequent transmission of the haptic effect to the user. Whenever a latency occurs, the effect is no longer synchronized with the concurrent application and the user will not experience the effect in real time. The sense of reality intended by the haptic is thus adversely affected due to such problems, as well as potential instability of closed loop effects such as springs.
There are two techniques commonly employed in the prior art for rendering force feedback effects to the user. The first technique employs a force feedback device that has a memory capable of storing an effect used in an application; the effect is activated by the application sending a command to the haptic feedback device, or in response to the user activating a control on the device. The host computer only provides the parameters for the stored effect, and the device produces the force output based on the supplied parameters.
In the second technique, the host computer and the force feedback device share a common "world view" or co-simulation. The host computer renders the graphics and sound of a virtual world and indicates the characteristics of objects and their physics in the virtual world to the force feedback device. The device is employed to render the physics of the virtual world and report the disposition of movable objects of interest to the host. Significantly, both approaches have inherent problems in rendering real time haptic effects. The first approach requires the host to continuously interact with the force feedback device in order to vary the time period of each haptic effect and schedule the transmission of the effect to the user. The second approach requires large amounts of processing power to be concentrated in the force feedback device for calculating the physics and position of objects disposed in the virtual world.
Clearly, an approach is required that avoids the problems of the above prior art techniques for rendering force feedback effects. It would be preferable to schedule a plurality of indicated haptic effects for generation by the force feedback device so that these effects can be implemented without requiring extensive communication between the device and the host computer. An effect that is to be employed by an application, if not stored in the force feedback device, should be downloadable from the host computer to the processor in the device. The host computer should be able to indicate an effect that should be applied to the processor when an application has called for the effect to be generated based upon an identification code assigned to the effect. A scheduler in the device should control the order in which the effects are rendered by the processor without any further interaction being required between the host computer and the device. It should be possible to schedule sequential, concatenated, or superimposed effects to enable the rendering of extremely complex effects. Currently, no known prior art haptic control system implements this approach to achieve the real-time rendering of effects.